package com.pi.config;




import com.pi.core.exchange.vo.CommonNameRegistryService;
import com.pi.pro.xcmg.am.common.XcmgAmConstants;
import com.pi.pro.xcmg.am.was.edi.mes.common.MesWasXcmgExchangeConstants;
import com.pi.pro.xcmg.am.was.edi.mes.service.KitDocumentServiceProxy;
import com.pi.wms.fac.conn.HttpAccessUrl;
import com.pi.wms.fac.conn.HttpclientProxy;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;



/**
 *
 */
@Configuration
public class MesWmsClientExchangeConfig {

    //@Value("${erp.api.was.active}")
    //private boolean sapInterfaceActive=false;

/**==================================================================================================================**/
//  WH101/
/**==================================================================================================================**/



/**==================================================================================================================**/
//  all

    /**==================================================================================================================**/

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }



    public String materialUrl(){
        return "http://10.24.0.28:11227/ws/MESCOMPLISTsoap";
    }

    public String materialRequestParams(String time){
        StringBuffer buf = new StringBuffer();
        //
        buf.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?> ");
        buf.append("<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tns=\"http://service.intmes.com/dev\"> ");
        buf.append("   <soap:Body> ");
        buf.append("      <tns:MESCOMPLISTinfo> ");
        buf.append("         <GETCOMPLISTTIME> ");
        buf.append("            <Rectime>").append(time).append("</Rectime> ");
        buf.append("         </GETCOMPLISTTIME> ");
        buf.append("      </tns:MESCOMPLISTinfo> ");
        buf.append("   </soap:Body> ");
         buf.append("</soap:Envelope> ");

        return buf.toString();
    }

    public String documentUrl(){
        return "http://10.24.0.26:11211/ws/BOARDPOLLPOS";
    }

    public String documentRequestParams(String docuemntNumber){
        StringBuffer buf = new StringBuffer();
        //
        buf.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?> ");
        buf.append("<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tns=\"http://service.intmes.com/dev\"> ");
        buf.append("   <soap:Body> ");
        buf.append("      <tns:MESCOMPLISTinfo> ");
        buf.append("         <GETCOMPLISTTIME> ");
        buf.append("            <POLLNO>").append(docuemntNumber).append("</POLLNO> ");
        buf.append("         </GETCOMPLISTTIME> ");
        buf.append("      </tns:MESCOMPLISTinfo> ");
        buf.append("   </soap:Body> ");
        buf.append("</soap:Envelope> ");

        return buf.toString();
    }

/**==================================================================================================================**/
//  WH101
/**==================================================================================================================**/

    @Value("${mes.api.was.wh101.code}")
    private String mesWh101ServiceCode;

    @Value("${mes.api.was.wh101.warehousecode}")
    private String mesWh101Warehousecode;

    /**
     @Value("${wcs.api.was.wh101.token}")
     private String wcsWh101Token;
     **/


    /**
     * DOC
     */
    @Value("${mes.api.was.wh101.document.client.code}")
    private String mesDocumentWh101ClientCode;

    @Value("${mes.api.was.wh101.document.func.query.url}")
    private String mesDocumentQueryWh101PostAccessUrl;


/**==================================================================================================================**/
//  all
    /**==================================================================================================================**/

    @Bean
    public CommonNameRegistryService mesNameRegistryService(){
        CommonNameRegistryService nameRegistryService = new CommonNameRegistryService(MesWasXcmgExchangeConstants.MES_ENDPOINT_NAMESPACE);
        nameRegistryService.clientnMapping(XcmgAmConstants.clients);
        nameRegistryService.orgnizationMapping(XcmgAmConstants.organizations);
        return nameRegistryService;
    }





/**==================================================================================================================**/
//  WH101
/**==================================================================================================================**/

    /**********************************************/
    //** DOC
    /**********************************************/
    @Bean
    public HttpAccessUrl mesDocumentQueryWh101PostAccessUrl(){
        HttpAccessUrl accessUrl=new HttpAccessUrl();
        accessUrl.setUrl(this.mesDocumentQueryWh101PostAccessUrl);
        accessUrl.setEndWithBackslash("");
        return accessUrl;
    }

    @Bean
    public HttpclientProxy mesDocuemntWh101Client(){
        HttpclientProxy client=new HttpclientProxy(this.mesDocumentWh101ClientCode);
        return client;
    }

    @Bean
    public KitDocumentServiceProxy mesDocuemntWh101ServiceProxy(){
        KitDocumentServiceProxy proxy=new KitDocumentServiceProxy();
        proxy.setCategory(this.mesWh101ServiceCode);
        proxy.setCode(this.mesWh101ServiceCode+this.mesDocumentWh101ClientCode);
        proxy.setMesDocumentClient(this.mesDocuemntWh101Client());
        //proxy.setToken(this.wcsWh101Token);
        proxy.setMesDocumentQueryPostAccessUrl(this.mesDocumentQueryWh101PostAccessUrl());
        this.mesNameRegistryService().register(proxy);
        return proxy;
    }



}
